package com.ruoyi.electronicFence.service;


import com.ruoyi.electronicFence.domain.TEfFenceArea;

import java.util.List;

/**
 * 围栏区域信息Service接口
 *
 * @author ruoyi
 * @date 2024-04-08
 */
public interface ITEfFenceAreaService
{
    /**
     * 查询围栏区域信息
     *
     * @param id 围栏区域信息主键
     * @return 围栏区域信息
     */
    public TEfFenceArea selectTEfFenceAreaById(Long id);

    /**
     * 查询围栏区域信息列表
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 围栏区域信息集合
     */
    public List<TEfFenceArea> selectTEfFenceAreaList(TEfFenceArea tEfFenceArea);

    /**
     * 查询围栏区域信息列表
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 围栏区域信息集合
     */
    public Long selectTEfFenceAreaListTotal(TEfFenceArea tEfFenceArea);

    /**
     * 查询围栏区域信息列表
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 围栏区域信息集合
     */
    public List<TEfFenceArea> selectTEfFenceAreaDetailsList(TEfFenceArea tEfFenceArea);

    /**
     * 查询围栏区域信息列表
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 围栏区域信息集合
     */
    public List<TEfFenceArea> selectTEfFenceAreaDetailsList2(TEfFenceArea tEfFenceArea);
    /**
     * 查询区域和设备
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 围栏区域信息集合
     */

    public List<TEfFenceArea> selectAreaAndEquipmentList(TEfFenceArea tEfFenceArea);


    /**
     * 新增围栏区域信息
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 结果
     */
    public int insertTEfFenceArea(TEfFenceArea tEfFenceArea);

    /**
     * 新增围栏区域详情信息
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 结果
     */
    public int detailsInsertTEfFenceArea(TEfFenceArea tEfFenceArea);

    /**
     * 修改围栏区域信息
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 结果
     */
    public int updateTEfFenceArea(TEfFenceArea tEfFenceArea);
    /**
     * 修改围栏区域详情信息
     *
     * @param tEfFenceArea 围栏区域信息
     * @return 结果
     */
    public int detailsUpdateTEfFenceArea(TEfFenceArea tEfFenceArea);

    /**
     * 批量删除围栏区域信息
     *
     * @param ids 需要删除的围栏区域信息主键集合
     * @return 结果
     */
    public int deleteTEfFenceAreaByIds(Long[] ids);

    /**
     * 批量删除围栏区域信息
     *
     * @param ids 需要删除的围栏区域信息主键集合
     * @return 结果
     */
    public int detailsDeleteTEfFenceAreaByIds(TEfFenceArea tEfFenceArea);

    /**
     * 删除围栏区域信息信息
     *
     * @param id 围栏区域信息主键
     * @return 结果
     */
    public int deleteTEfFenceAreaById(Long id);
}
